export default {
    namespaced: true,
    state: {
        //显示与否   true仅仅只是决定了一个显示属性
        //提示文本   "登录成功"
        //提示类型   "success"   "warning"   "danger"
        //用来表示提示框的显示true和隐藏false
        isShowToast: false,
        msg: '',
        type: ""
    },
    mutations: {
        //修改isShowToast的值
        chanIsShowToast(state, payload) {
            state.isShowToast = payload.isShowToast;
            state.msg = payload.msg;
            state.type = payload.type
        }
    },
    actions: {
        asyncChanIsShowToast(context, payload) {
            //先展示,就是调用原先写的上面的这个方法chanIsShowToast
            context.commit("chanIsShowToast", {
                isShowToast: true,
                msg: payload.msg,
                type: payload.type
            })

            //关闭的代码
            setTimeout(() => {
                context.commit("chanIsShowToast", {
                    isShowToast: false,
                    msg: payload.msg,
                    type: payload.type
                });
            }, 2000);
        }
    },
}


//封装Toast组件总结
//样式解构----注意外边距和iconfont的类名的三元表达式的嵌套
//显示隐藏变量存在Vuex中-----因为多个组件中都要用到这个数据
//过渡效果(进场离场)-------看文档,弄清初始状态和结束状态
//msg和type属性处理--------通过对象传递属性
//定时器,关闭Toast组件------关闭的时候就是调用修改的那个方法
//抽取定时器到actions的方法中----异步方法的抽取和使用  context   commit(方法名,要传的参数)